perm filename CVTIO.FAI[EX2,LCS] blob
sn#197648 filedate 1976-01-19 generic text, type T, neo UTF8
;**** UDP PORTIONS ARE FOR STANFORD DISK SYSTEM(USER-DISK PACK)
; MTA1 ITEMS ARE USED WITH "TAPMUS" (ETC.), TAPE TRANSFER PROGS.
TITLE FSTUDP ; ********* NOV 4,70 *********
INTERNAL INTUDP,TOUDP,FINUDP,TOTAPE,FINTAP,BACKSP
INTERNAL GETTAP,INTAPE,FSTMUS,PUTMUS,FINMUS
INTERNAL MTA1,INMTA1
INTERNAL GETFIL,PUTFIL,FASTIN,FASTOUT,FINFIL
EXTERNAL CVTALC
; USE UDFAST.DMP[1,3] TO PLAY FROM UDP
FILUDP←←1 ;SET TO 0 FOR NON-FILE STRUCTURED UDP
;SET TO 1 FOR FILE STRUCTURED UDP
MAXBLK←←=4998 ;=4999 IS USED BY SYSTEM FOR PASSWORD
CH←12
CH2←11
CH3←13
BLKS←←=1
DEFINE ERROR (MSG)
< JSA 16,.ERROR
JUMP [ASCIZ/MSG/
]
>
REGS: BLOCK 20
;CALL PUTFIL(<FILE>)
PUTFIL: 0
MOVE 0,@0(16)
MOVEM FILNAM
JSA 16,INTFIL
MOVE 0,[SIXBIT/DMD/]
MOVEM 0,DIR+1
SETZM DIR+2
SETZM DIR+3
ENTER CH2,DIR
0
JRA 16,1(16)
;CALL FASTOUT(<ARRAY>,<NO. OF WORDS>)
FASTOUT: 0
HRRZ 0,0(16)
SUBI 0,1
MOVEM 0,COM
MOVN 0,@1(16)
HRLM 0,COM
OUTPUT CH2,COM
STATZ CH2,740000
0
JRA 16,2(16)
;CALL FINFIL
FINFIL: 0
CLOSE CH2,0
STATZ CH,740000
0
RELEASE CH2,0
JRA 16,0(16)
;CALL GETFIL(<FILE>)
GETFIL: 0
MOVE 0,@0(16)
MOVEM 0,FILNAM
JSA 16,INTFIZ
MOVE 0,[SIXBIT/DMD/]
MOVEM 0,DIR+1
JSA 16,LKUP
SKIPA
JRST GETF3
SETZM DIR+1
JSA 16,LKUP
0
GETF3: JRA 16,1(16)
LKUP: 0
SETZM DIR+2
SETZM DIR+3
LOOKUP CH3,DIR
JRA 16,0(16)
JRA 16,1(16)
INTFIZ: 0 ;INITS DSK FOR INPUT
MOVEI REGS
BLT REGS+3
INIT CH3,17
SIXBIT/DSK/
0
ERROR <CAN'T INIT DSK!>
JRST INTF4
DIR: BLOCK 4
;CALL FASTIN(<ARRAY>,<NO. WORDS>)
FASTIN: 0
HRRZ 0,0(16)
SUBI 0,1
MOVEM 0,COM
MOVN 0,@1(16)
HRLM 0,COM
INPUT CH3,COM
STATZ CH3,740000
0
JRA 16,2(16)
;CALL MTA1
MTA1: 0 ;CH2, READS MTA1.
INIT CH2,617
SIXBIT/MTA1/
0
ERROR <CAN'T INIT MTA1>
JRA 16,0(16)
;CALL INMTA1(<ARRAY>,<NO. OF WORDS>)
INMTA1: 0
HRRZ 0,0(16)
SUBI 0,1
MOVEM 0,COM
MOVN 0,@1(16)
HRLM 0,COM
INPUT CH2,COM
STATZ CH2,740000
ERROR <MAG TAPE READ ERROR>
JRA 16,2(16)
;CALL PUTMUS(<FILE>)
PUTMUS: 0 ;USES INTMUS,FSTMUS,FINMUS, CH2. WRITES ON 2314.
MOVE 0,@0(16)
MOVEM 0,FILNAM
JSA 16,INTFIL
MOVE 0,DIR
CAME 0,[SIXBIT/MUSIC/] ;IS FILE NAME "MUSIC"
JRST .+3 ;NO -- DO NORMAL ENTER
JSA 16,CVTALC ;YES -- DO EXTENDED ENTER TO
JRA 16,1(16) ;GET 1000 BLOCKS
MOVE 0,[SIXBIT/MUS/]
MOVEM 0,DIR+1
SETZM DIR+2
SETZM DIR+3
ENTER CH2,DIR
ERROR <ENTER FAILED>
JRA 16,1(16)
;CALL FSTMUS(<ARRAY>,<NO. OF WORDS>)
FSTMUS: 0
HRRZ 0,0(16)
SUBI 0,1
MOVEM 0,COM
MOVN 0,@1(16)
HRLM 0,COM
OUTPUT CH2,COM
STATZ CH2,740000
ERROR <WRITE ERROR>
JRA 16,2(16)
;CALL INTUDP
INTUDP: 0 ;USES TOUDP, FINUDP, CH2. WRITES ON UDP.
INIT CH2,17
SIXBIT/UDP/
0
ERROR <CAN'T INIT UDP>
IFE FILUDP,<
MOVEM BLKNUM
MOVEI 1
EXCH BLKNUM
>
IFN FILUDP,<
IN CH2,[IOWD 40,UDPBUF
0]
CAIA
ERROR <CAN'T READ UDP BITMAP>
SKIPN 1,UDPBUF+20 ;IS THERE A POINTER TO SCRATCH AREA
MOVEI 1,1 ;NO, START AT BLOCK 1
MOVEM 1,BLKNUM ;SET BLOCK NUMBER
>
ENTER CH2,[0
0
0
0]
ERROR <WRONG PASSWORD, PLEASE MOUNT CORRECT UDP>
JRA 16,0(16)
INTFIL: 0 ;INITS DSK
MOVEI REGS
BLT REGS+3
INIT CH2,17
SIXBIT/DSK/
0
ERROR <CAN'T INIT DSK!>
INTF4: MOVE 0,FILNAM#
MOVEM 0,FN#
MOVE 1,[POINT 7,FN]
INTF3: MOVE 2,[POINT 6,DIR]
SETZM DIR
MOVEI 3,5
INTF1: ILDB 0,1
CAIN 0," "
JRST INTF2
SUBI 0,40
IDPB 0,2
SOJG 3,INTF1
INTF2: HRLZI REGS
BLT 3
JRA 16,0(16)
;CALL TOTAPE(<ARRAY>,<NO.OF WORDS>) WRITES ON MAGTAPE
TOTAPE: 0
HRRZ 0,0(16)
SUBI 0,1
MOVEM 0,COM
MOVN 0,@1(16)
HRLM 0,COM
OUTPUT CH,COM
STATZ CH,740000
ERROR <MAG TAPE WRITE ERROR>
JRA 16,2(16)
;CALL GETTAP
GETTAP: 0 ;USES INTAP OR TOTAPE, CH. READS OR WRITES MTA0.
INIT CH,617
SIXBIT/MTA0/
0
ERROR <CAN'T INIT MTA0>
JRA 16,0(16)
;CALL INTAPE(<ARRAY>,<NO.OF WORDS>) READS MAGTAPE
INTAPE: 0
HRRZ 0,0(16)
SUBI 0,1
MOVEM 0,COM
MOVN 0,@1(16)
HRLM 0,COM
INPUT CH,COM
STATZ CH,740000
ERROR <MAG TAPE READ ERROR>
JRA 16,2(16)
;CALL TOUDP(<ARRAY>,<NO. OF WORDS>)
TOUDP: 0
HRRZ 0,0(16)
SUBI 0,1
MOVEM 0,COM1
MOVN 0,@1(16)
HRLM 0,COM1
MOVE 0,BLKNUM
CAILE 0,MAXBLK-BLKS+1
ERROR <UDP FULL!>
OUTPUT CH2,COM1
MOVEI 0,BLKS
ADDM 0,BLKNUM
STATZ CH2,740000
ERROR <UDP WRITE ERROR>
JRA 16,2(16)
COM: OCT 0,0
COM1: 0
BLKNUM: 0
;CALL FINUDP(WORD COUNT)
FINUDP: 0
MOVE 0,@ 0(16)
IFE FILUDP,<
MOVEM 0,[FOO: 0
0 ]
OUTPUT CH2,[IOWD 40,FOO
0 ]
CAIA
>
IFN FILUDP,<
IN CH2,[IOWD 40,UDPBUF
0]
CAIA
ERROR <ERROR IN READING UDP BITMAP!>
MOVEM 0,UDPBUF+21
OUT CH2,[IOWD 40,UDPBUF
0]
JRST FINMUS+1
ERROR <ERROR IN WRITING UDP BITMAP!>
>
;CALL FINMUS
FINMUS: 0
CLOSE CH2,4
STATZ CH2,740000
ERROR <ERROR AFTER CLOSE>
RELEASE CH2,0
JRA 16,0(16)
FINTAP: 0
CLOSE CH,0
STATZ CH,740000
ERROR <MAG TAPE ERROR AFTER CLOSE>
RELEASE CH,0
JRA 16,0(16)
BACKSP: 0
INIT CH,617
SIXBIT/MTA0/
0
ERROR <CAN'T INIT MTA0>
MTAPE CH,7
JRA 16,0(16)
.ERROR: 0
OUTSTR [ASCIZ/?
/] ;MAKE SURE HE CAN SEE HIS ERROR
OUTSTR @(16) ;OUTPUT ERROR MESSAGE
CALLI 1,12 ;LET USER CONTINUE
JRA 16,1(16)
UDPBUF: BLOCK 40
;END
; TITLE NORM ;DEB, 11/13/69
; CALL NORM(ARRAY,SIZE,FACTOR)
; UNPACKS 18-BIT SMPLS, NORMALIZES, REPACKS AS 12-BIT SMPLS.
; ---- 3K OF 18-BIT BECOMES 2K OF 12-BIT
;****** BE SURE TO SET FACTOR FOR 9-BIT SO MAXAMP IS NOT >255.
INTERNAL NORM
X ← 2 ;LOOP AND INDEX
T ← 3 ;BASE OF IBOTT
NORM: 0
HRR X,0(16)
MOVN T,@1(16)
HRL X,T
HRR T,X
HRLI T,441400 ;FOR 12-BIT. USE 441100 FOR 9-BIT
MOVE 4,@2(16)
;;FOR STANFORD ONLY FIX 4,212000
; NEXT IS EXPORT FIX (TO N10:)
FSC 4,21
MULI 4,400
TSC 4,4
EXCH 4,5
ASH 4,-243(5)
N10: HLL 0(2)
MUL 4
IDPB T
HRL 0(2)
MUL 4
IDPB T
AOBJN X,N10
JRST 3(16)
0
ANDCBM 4,-6 ; THESE ARE THE CONSTANTS
ANDCBI 10,-3
END